package org.neurone.userspace.userinfo;

import java.util.List;

import org.neurone.domain.Application;
import org.neurone.domain.Message;
import org.neurone.domain.UserConfig;
import org.neurone.domain.UserDetailInfo;

public interface UserFace {
    void freeze();
    void unfreeze();    
    
    void addDetail(UserDetailInfo userDetail);
    void deleteDetail(Long detailID);
    void updateDetail(UserDetailInfo userDetail);
    void updateUserConfig(UserConfig userConfig);
    
    void assignApplication(Long applicationID);
    void unAssignApplication(Long applicationID);
    List<Application> listAssignedApplication();
    
	List<Message> getPersonalAll(int pageSize, int pageIndex);	
	List<Message> getPersonalNews(int pageSize, int pageIndex);
	List<Message> getPersonalScrip(int pageSize, int pageIndex);
	List<Message> getPersonalTask(int pageSize, int pageIndex);
    
    boolean isPersistentAvailable();
    void flush();
}
